<?php

class CommonAction extends Action {

    public $model = null; //默认Model

    public function _initialize() {
        
    }

    public function _list($map = array(), $order = array(), $model = NULL) {
        $_order = array(
            'order' => 'id',
            'sort' => 'desc',
            'sortAlt' => '倒序排列', //排序提示
        );
    }

    /**
      +----------------------------------------------------------
     * 分页函数 支持sql和数据集分页 sql请用 buildSelectSql()函数生成
      +----------------------------------------------------------
     * @access public
      +----------------------------------------------------------
     * @param array   $result 排好序的数据集或者查询的sql语句
     * @param int       $totalRows  每页显示记录数 默认21
     * @param string $listvar    赋给模板遍历的变量名 默认list
     * @param string $parameter  分页跳转的参数
     * @param string $target  分页后点链接显示的内容id名
     * @param string $pagesId  分页后点链接元素外层id名
     * @param string $template ajaxlist的模板名
     * @param string $url ajax分页自定义的url
      +----------------------------------------------------------
     */
    public function _page($param = array()) {
        $_param = array(
            // 'result' => $list, //分页用的数组或sql
            'listvar' => 'list', //分页循环变量
            'listRows' => 3, //每页记录数
            //'parameter' => 'id=1&name=商国中国&ap=fdsfsd', //url分页后继续带的参数
            'target' => 'listtable', //ajax更新内容的容器id，不带#
            'pagesId' => 'page', //分页后页的容器id不带# target和pagesId同时定义才Ajax分页
            'template' => 'Index:ajaxlist', //ajax更新模板
        );
        $param = array_merge($_param, $param);
        extract($param);
        import("@.ORG.Page");
        //总记录数
        $flag = is_string($result);
        $listvar = $listvar ? $listvar : 'list';
        $listRows = $listRows ? $listRows : 21;
        if ($flag)
            $totalRows = M()->table($result . ' a')->count();
        else
            $totalRows = ($result) ? count($result) : 1;
        //创建分页对象
        if ($target && $pagesId)
            $p = new Page($totalRows, $listRows, $parameter, $url, $target, $pagesId);
        else
            $p = new Page($totalRows, $listRows, $parameter, $url);
        //抽取数据
        if ($flag) {
            $result .= " LIMIT {$p->firstRow},{$p->listRows}";
            $voList = M()->query($result);
        } else {
            $voList = array_slice($result, $p->firstRow, $p->listRows);
        }
        $pages = C('PAGE'); //要ajax分页配置PAGE中必须theme带%ajax%，其他字符串替换统一在配置文件中设置，
        //可以使用该方法前用C临时改变配置
        foreach ($pages as $key => $value) {
            $p->setConfig($key, $value); // 'theme'=>'%upPage% %linkPage% %downPage% %ajax%'; 要带 %ajax%
        }
        //分页显示
        $page = $p->show();
        //模板赋值
        $this->assign($listvar, $voList);
        $param['order']['sortImg'] = $param['order']['sort'];
        $param['order']['sort'] = ($param['order']['sort'] == 'desc') ? 'asc' : 'desc';
        $this->assign('order', $param['order']);
        $this->assign("page", $page);
        if ($this->isAjax()) {//判断ajax请求
            layout(false);
            $template = (!$template) ? 'ajaxlist' : $template;
            exit($this->fetch($template));
        }
        return $voList;
    }

    /**
      +----------------------------------------------------------
     * 验证码显示
      +----------------------------------------------------------
     * @access public
      +----------------------------------------------------------
     * @return void
      +----------------------------------------------------------
     * @throws FcsException
      +----------------------------------------------------------
     */
    public function verify() {
        import("@.ORG.Image");
        Image::buildImageVerify();
    }

}

?>
